Improve Solaris Xinerama configure detection
authorBrian Cameron <Brian.Cameron@sun.com>
Fri, 5 Jun 2009 05:42:01 +0000 (00:42 -0500)
committerBrian Cameron <Brian.Cameron@sun.com>
Fri, 5 Jun 2009 05:46:25 +0000 (00:46 -0500)
The latest releases of Solaris now ship with the X.org Xserver, so it is
better to use the Xfree Xinerama interfaces if available.  This commit fixes
the configure script so that it first tries to use the Xfree interfaces and
only falls back to the Solaris-specific interfaces if they are not available.
This way, older releases of Solaris which do not use X.org also will work.
(Bug 580079)

configure.in

index 2222b785815f18e05a68b2bcc97cae5a05925e26..221388f6cc028a7d924b702f0741f830f53e38ad 100644 (file)
@@ -1492,54 +1492,55 @@ if test "x$gdktarget" = "xx11"; then
     gtk_save_cppflags="$CPPFLAGS"
     CPPFLAGS="$CPPFLAGS $x_cflags"
   
-    case "$host" in
-      *-*-solaris*)
-          # Check for solaris
-         AC_MSG_CHECKING(for Xinerama support on Solaris)
+    # Check for XFree
+    AC_MSG_CHECKING(for Xinerama support on XFree86)
          
-         have_solaris_xinerama=false
-         AC_CHECK_FUNC(XineramaGetInfo,
-             [AC_CHECK_HEADER(X11/extensions/xinerama.h,
-                 [have_solaris_xinerama=true], :,
-                 [#include <X11/Xlib.h>])])
-               
-          if $have_solaris_xinerama ; then
-            AC_DEFINE(HAVE_SOLARIS_XINERAMA, 1,
-                      [Define to 1 if solaris xinerama is available])
-           AC_DEFINE(HAVE_XINERAMA, 1,
-                      [Define to 1 if xinerama is available])
-            AC_MSG_RESULT(yes)
-          else
-            AC_MSG_RESULT(no)
-          fi
-          ;;
-      *)
-         # Check for XFree
-          AC_MSG_CHECKING(for Xinerama support on XFree86)
+    have_xfree_xinerama=false
+    if $PKG_CONFIG --exists xinerama ; then
+       have_xfree_xinerama=true
+       X_PACKAGES="$X_PACKAGES xinerama"
+    else    
+       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
+          [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
+          [GTK_ADD_LIB(x_extra_libs,Xinerama)
+          have_xfree_xinerama=true], :,
+           [#include <X11/Xlib.h>])])
+    fi
+
+    if $have_xfree_xinerama ; then
+      AC_DEFINE(HAVE_XFREE_XINERAMA, 1,
+                [Define to 1 if XFree Xinerama is available])
+      AC_DEFINE(HAVE_XINERAMA, 1,
+                [Define to 1 is Xinerama is available])
+      AC_MSG_RESULT(yes)
+    else
+      AC_MSG_RESULT(no)
+
+      case "$host" in
+        *-*-solaris*)
+            # Check for solaris
+           AC_MSG_CHECKING(for Xinerama support on Solaris)
          
-          have_xfree_xinerama=false
-          if $PKG_CONFIG --exists xinerama ; then
-             have_xfree_xinerama=true
-             X_PACKAGES="$X_PACKAGES xinerama"
-          else    
-             AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
-                 [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
-                     [GTK_ADD_LIB(x_extra_libs,Xinerama)
-                     have_xfree_xinerama=true], :,
-                      [#include <X11/Xlib.h>])])
-          fi
-
-          if $have_xfree_xinerama ; then
-            AC_DEFINE(HAVE_XFREE_XINERAMA, 1,
-                      [Define to 1 if XFree Xinerama is available])
-           AC_DEFINE(HAVE_XINERAMA, 1,
-                      [Define to 1 is Xinerama is available])
-            AC_MSG_RESULT(yes)
-         else
-            AC_MSG_RESULT(no)
-         fi
-         ;;
-    esac
+           have_solaris_xinerama=false
+           AC_CHECK_FUNC(XineramaGetInfo,
+               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
+                   [have_solaris_xinerama=true], :,
+                   [#include <X11/Xlib.h>])])
+               
+            if $have_solaris_xinerama ; then
+              AC_DEFINE(HAVE_SOLARIS_XINERAMA, 1,
+                        [Define to 1 if solaris xinerama is available])
+             AC_DEFINE(HAVE_XINERAMA, 1,
+                        [Define to 1 if xinerama is available])
+              AC_MSG_RESULT(yes)
+            else
+              AC_MSG_RESULT(no)
+            fi
+            ;;
+        *)
+            ;;
+      esac
+    fi
   fi
   
   # set up things for XInput